package com.treemapdemo;

import java.util.TreeMap;
import java.util.function.BiConsumer;

public class TreeMapDemo3 {
    public static void main(String[] args) {
        /*需求:
        字符串"aababcabcdabcde"
        请统计字符串中每一个字符出现的次数，并按照以下格式输出
        输出结果:
        a(5)     b(4)     c(3)     d(2)     e(1)
        新的统计思想: 利用map集合进行统计
        如果题目中没有要求对结果进行排序，默认使用HashMap
        如果题目中要求对结果进行排序，请使用TreeMap

        键:表示要统计的内容
        值:表示次数
        */
        //1.定义字符串
        String str="aababcabcdabcde";

        //2.创建集合
        TreeMap<Character, Integer> treeMap = new TreeMap<>();

        //3.遍历字符串得到每一个字符
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            //拿着c到集合中判断是否存在

            if(treeMap.containsKey(c)){
                //存在，表示当前字符又出现了一次
                Integer count = treeMap.get(c);
                treeMap.put(c,++count);
            }else {
                //不存在，表示当前字符是第一次出现
                treeMap.put(c,1);
            }
        }

        //4.遍历集合
        StringBuilder builder = new StringBuilder();
        treeMap.forEach((key, value) -> builder.append(key).append("(").append(value).append(")").append(" "));
        System.out.println(builder);
    }
}
